package cn.zhizihua.exception;

import cn.zhizihua.domain.vo.ResultBean;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 统一异常处理类
 * 只要发生异常就会拦截
 *   判断是否自定义的异常  是的话 返回ResultBean的时候填写自己异常的code和msg
 *                     不是  500 服务器内部错误
 */
@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(value = Exception.class)
    public ResultBean exceptionHandler(Exception e){
        e.printStackTrace();
        //判断拦截到的异常是不是我们自己定义的异常类型
        if (e instanceof AppException){
            AppException appException = (AppException)e;
            return ResultBean.ERROR(appException.getCode(),appException.getMsg());
        }
        return ResultBean.ERROR();
    }

}
